########################################
# make搜索路径的变量定义
VPATH = .:..:../gtest/gtestlib:../gtest/include
########################################
########################################
# 一些变量的定义

RM = rm -f

CXX = g++

INCLUDE_GTEST = ../gtest/include

CXXFLAGS = -I../ -I$(INCLUDE_GTEST)
CXXFLAGS += -g -c -Wall
CXXLFLAGS = -Wall -g -L../ -laranya -L../gtest/gtestlib/ -lgtest

LIB_ARANYA = ../libaranya.a
LIB_GTEST = ../gtest/gtestlib/libgtest.a

OBJS = main.o
SOURCESCXX = $(OBJS: %.o: %.cpp)
DEPS = $(OBJS: %.o: %.d)

TARGET = test
########################################
########################################
## 声明伪目标
.PHONY: all clean
########################################
########################################
# 产生多个可执行文件的方法
all: $(TARGET)
########################################
########################################
# 包含.d文件
include $(DEPS)
########################################
########################################
# 生成.d文件
$(DEPS): %.d: %.cpp
	$(CXX) -M $(CXXFLAGS) $< > $@.$$$$; sed's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; rm -f $@.$$$$
########################################
########################################
# 生成可执行文件
$(TARGET) : $(OBJS) $(LIB_ARANYA)
	$(CXX) $(OBJS) -o $@ $(CXXLFLAGS)
########################################
########################################
# 生成.o文件
$(OBJS): %.o: %.cpp
	$(CXX) $(CXXFLAGS) $< -o $@
########################################
########################################
# clean
clean:
	$(RM) $(OBJS) *.d
########################################
########################################
# distclean
distclean:
	$(RM) $(OBJS) $(TARGET) *.d core.*
########################################
########################################
# bakupcore
bakupcore:
	mkdir bakup_core
	mv core.* bakup_core/
	RM core.*
	RM $(LIB_ARANYA)
########################################
